/**
 * Creat with IntelliJ IDEA
 * Description:
 * User:WZW
 * Date:2022-04-23
 * Time:8:18
 */
public class Demo12 {
    public static void main(String[] args) {
        //通过继承Thread类创建的实例
        //可以通过Thread.currentThread()方法获得当前实例
        //也可以通过this直接拿到当前的实例
        Thread t1 = new Thread(){
            @Override
            public void run(){
                System.out.println(Thread.currentThread().getName());
                System.out.println(this.getName());
            }
        };

        //通过传递Runnable创建的线程实例
        //只能通过Thread.currentThread()方法获得当前实例
        //不能通过this直接拿到当前的实例(因为这里的this指向的不是Thread类型了，而是一个单纯的任务)
        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
//                System.out.println(this.getName());//getName本身不是Runnable的方法，不能直接使用this调用
            }
        });

        //使用lambda表达式的效果与Runnable相同，不再赘述
        Thread t3 = new Thread(()->{
            System.out.println(Thread.currentThread().getName());
//                System.out.println(this.getName());
        });
    }

}
